home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d18 / mlapi.arc / MLAPI.ASM < prev    next >
Assembly Source File  |  1991-04-28  |  2KB  |  122 lines

  1. ;Interface Turbo Pascal 5.0 with MultiLink Advanced
  2. ;Version 1.0
  3. ;Assembled with TASM 1.0
  4.  
  5. ;Donald M. DeLapp
  6. ;485 S. Sheridan Ave.
  7. ;Sheridan, WY  82801
  8. ;307-674-6841
  9.  
  10. LOCALS
  11. .MODEL TPASCAL
  12. .CODE
  13.  
  14. MultiLinkINT     EQU    7Fh
  15.  
  16. MultiLinkLoaded PROC FAR
  17. PUBLIC MultiLinkLoaded
  18.     XOR    AX,AX
  19.     MOV    ES,AX
  20.     MOV    ES,ES:[01FEH]
  21.     MOV    DX,ES
  22.     CMP    AX,DX
  23.     JE    NOTFOUND
  24.     CMP    BYTE PTR ES:[0],0E9H
  25.     JNE    NOTFOUND
  26.     MOV    AL,1
  27.     JMP    SHORT @@EXIT
  28. NOTFOUND:
  29.     XOR    AL,AL
  30. @@EXIT:    RET
  31. MultiLinkLoaded ENDP
  32.  
  33. Enque PROC FAR What:WORD,WaitFlag:WORD,Result:DWORD
  34. PUBLIC Enque
  35.     MOV    BX,WORD PTR What
  36.     XOR    AH,AH
  37.     MOV    AL,BYTE PTR WaitFlag
  38.     INT    MultiLinkINT
  39.     XOR    AH,AH
  40.     LES    DI,DWORD PTR Result
  41.     MOV    WORD PTR ES:[DI],AX
  42.         RET
  43. Enque ENDP
  44.  
  45. Deque PROC FAR What:WORD,Result:DWORD
  46. PUBLIC Deque
  47.     MOV    BX,WORD PTR What
  48.     MOV    AH,1
  49.     INT    MultiLinkINT
  50.     XOR    AH,AH
  51.     LES    DI,DWORD PTR Result
  52.     MOV    WORD PTR ES:[DI],AX
  53.         RET
  54. Deque ENDP
  55.  
  56. SetTaskPriority PROC FAR N:WORD
  57. PUBLIC SetTaskPriority
  58.     MOV    AL,BYTE PTR N
  59.     MOV    AH,9
  60.     INT    MultiLinkINT
  61.     RET
  62. SetTaskPriority ENDP
  63.  
  64. SetKbdTest PROC FAR N:WORD
  65. PUBLIC SetKbdTest
  66.     MOV    AL,BYTE PTR N
  67.     MOV    AH,10
  68.     INT    MultiLinkINT
  69.     RET
  70. SetKbdTest ENDP
  71.  
  72. MLVIDRAMActive PROC FAR
  73. PUBLIC MLVIDRAMActive
  74.         XOR    AX,AX
  75.         MOV     ES,AX
  76.         MOV     ES,WORD PTR ES:[01FEH]
  77.     MOV    DI,WORD PTR ES:[58H]    ;TASK INDEX
  78.     MOV    AL,BYTE PTR ES:[DI+0D6H];video I/O buffer flag
  79.     AND    AL,00000001B
  80.     JZ    @@FALSE
  81.         MOV     AL,1
  82.         JMP     SHORT @@EXIT
  83. @@FALSE:
  84.     XOR    AL,AL
  85. @@EXIT:    RET
  86. MLVIDRAMActive ENDP
  87.  
  88. GetMultiLinkVideoSegment PROC FAR
  89. PUBLIC GetMultiLinkVideoSegment
  90.         XOR    AX,AX
  91.         MOV     ES,AX
  92.         MOV     ES,WORD PTR ES:[01FEH]
  93.     MOV    DI,WORD PTR ES:[58H]    ;TASK INDEX
  94.     MOV    AX,WORD PTR ES:[DI+0D4H];video I/O buffer segment address
  95.     RET
  96. GetMultiLinkVideoSegment ENDP
  97.  
  98. SetTaskTimeSlice PROC FAR N:WORD
  99. PUBLIC SetTaskTimeSlice
  100.         XOR    AX,AX
  101.         MOV     ES,AX
  102.         MOV     ES,WORD PTR ES:[01FEH]
  103.     MOV    DI,WORD PTR ES:[58H]    ;TASK INDEX
  104.     MOV    AL,BYTE PTR N
  105.     MOV    BYTE PTR ES:[DI+0E3H],AL;timer ticks for partition
  106.     RET
  107. SetTaskTimeSlice ENDP
  108.  
  109. GetPartitionNo PROC FAR
  110. PUBLIC GetPartitionNo
  111.         XOR    AX,AX
  112.         MOV     DX,AX
  113.         MOV     ES,AX
  114.         MOV     ES,WORD PTR ES:[01FEH]
  115.     MOV    BX,WORD PTR ES:[54H]    ;RTSIZE
  116.     MOV    AX,WORD PTR ES:[58H]    ;TASK INDEX
  117.     DIV    BX
  118.     RET
  119. GetPartitionNo ENDP
  120.  
  121. END
  122.